home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
pao
/
towns
/
paolib
/
sample
/
ctrl_t2.c
< prev
next >
Wrap
Text File
|
1991-10-18
|
4KB
|
148 lines
/*
** CONTROL.EXE を介して TMENU を通さずに 他の.EXP へ制御を移す。
**
** CTRL_T1 ←→ CTRL_T2
**
** < note > : TABS = 4
**
** 注意 : カレントにRUN386.EXEとCTRL_T1.EXPが必要です。また、TownsMENUから起動
** することが前提です。
*/
pragma Off (Floating_point) ;
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <string.h>
#include <egb.h>
#include <mos.h>
#include <fmc.h>
#include "hc.h"
#include "key.h"
#define GworkSize 1536 /* グラフィック作業域のサイズ */
char Gwork[GworkSize] ; /* グラフィック作業域 */
#define MworkSize 4096 /* マウス作業域のサイズ */
char Mwork[MworkSize] ; /* マウス作業域 */
struct _ENCODE encode ;
union _MOJI moji ;
/******************************* 初期化 ************************************/
void gminit()
{
TEXT_init( Gwork,GworkSize ) ; /* EGB 初期化 */
GRP_viewport( 0,0,1023,511 ) ; /* View Port SET */
TEXT_cursor( TRUE ) ; /* カーソル表示 */
MOS_start( Mwork,MworkSize ) ;
MOS_disp( FALSE ) ;
}
/***************************** ★ メイン ★ ********************************/
void main( int ac, char *av[] )
{
int c, err=0 ;
char s[120] ;
char intext[128] ;
gminit() ;
TEXT_color( C_HYELLOW ) ;
TEXT_printf( "\nCTRL_T2.EXP......\n" ) ;
strcpy( s,"RUN386.exe CTRL_T1 " ) ;
if ( ac > 1 ) {
for ( c=1; c<ac; c++ ) {
TEXT_color( C_LIGHTBLUE ) ;
TEXT_printf( "引数[%02d] = %s(%d)\n",c,av[c],strlen(av[c]) ) ;
if ( (strlen(s)+strlen(av[c])) < 120 )
strcat( s,av[c] ) ;
else
break ;
}
} else {
strcat( s,"引数なし" ) ;
}
TEXT_color( C_HGREEN ) ;
TEXT_printf( "s = %s(%d)\n",s,strlen(s) ) ;
TEXT_color( C_HLIGHTBLUE ) ;
TEXT_printf( "1: →CTRL_T1, 2: →CTRL_T2, 3: EXIT !, " ) ;
TEXT_printf( "4: POFF, 5: RESET, 他: 終了\n" ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
TEXT_color( C_HGREEN ) ;
TEXT_printf( "HIT KEY IS " ) ;
intext[0] = moji.hl.l ;
intext[1] = '\0' ;
TEXT_printf( intext ) ;
TEXT_cr() ;
MOS_end() ;
TEXT_cr() ;
switch ( moji.hl.l ) {
case '1' :
if ( strlen( s ) < 119 ) strcat( s,"1" ) ;
strcpy( CTRL_cmdline_data,s ) ;
TEXT_color( C_HWHITE ) ;
TEXT_printf( "CMD LINE PARAMETER : " ) ;
TEXT_printf( CTRL_cmdline_data ) ;
KYB_clrbuf() ; /* バッファクリア */
TEXT_color( C_HGREEN ) ;
TEXT_printf( "\n何かキーを押して下さい。 " ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
RealCall( CTRL_cmdline ) ;
exit( 0 ) ;
break ;
case '2' :
strcpy( CTRL_cmdline_data,"RUN386.exe CTRL_T2 RETRY ..." ) ;
TEXT_color( C_HWHITE ) ;
TEXT_printf( "CMD LINE PARAMETER : " ) ;
TEXT_printf( CTRL_cmdline_data ) ;
KYB_clrbuf() ; /* バッファクリア */
TEXT_color( C_HGREEN ) ;
TEXT_printf( "\n何かキーを押して下さい。 " ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
RealCall( CTRL_cmdline ) ;
exit( 0 ) ;
break ;
case '3' :
KYB_clrbuf() ; /* バッファクリア */
TEXT_color( C_HGREEN ) ;
TEXT_printf( "\n何かキーを押して下さい。 " ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
exit( 0 ) ;
break ;
case '4' :
KYB_clrbuf() ; /* バッファクリア */
TEXT_color( C_HGREEN ) ;
TEXT_printf( "\n何かキーを押して下さい。 " ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
poff() ;
break ;
case '5' :
KYB_clrbuf() ; /* バッファクリア */
TEXT_color( C_HGREEN ) ;
TEXT_printf( "\n何かキーを押して下さい。 " ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
reboot() ;
break ;
default :
intext[0] = moji.hl.l ;
intext[1] = '\0' ;
TEXT_color( C_HGREEN ) ;
TEXT_printf( intext ) ;
TEXT_color( C_HWHITE ) ;
TEXT_printf( " KEY HITTED : PG. END" ) ;
break ;
}
TEXT_color( C_HWHITE ) ;
TEXT_printf( "\nOWARI" ) ;
KYB_clrbuf() ; /* バッファクリア */
TEXT_color( C_HGREEN ) ;
TEXT_printf( "\n何かキーを押して下さい。 " ) ;
moji.x = KYB_read( 0,(unsigned int *)&encode ) ;
}